The present invention concerns user interfaces for computer application programs in general, and user interface toolbars in particular.
There are many instances in which conventional menu structures are cumbersome for applying user-desired features to objects, especially when such features are defined through a series of procedural steps. In such cases, choices made in the menu structure will determine subsequent options from which the user may select. This problem is particularly troublesome when it is desirable to enable a user to modify any choice that was made in the series of choices (i.e., where it is desirable to provide xe2x80x9cmodeless optionsxe2x80x9d).
Most menu structures, such as dropdown menus, are staticxe2x80x94that is, they correspond to a predefined command structure, where the options from which a user may choose do not change in response to a previous menu choice. These types of menus are often difficult to navigate through more than two levels, especially when a desired selection is embedded several layers down within the nested menu structure. Furthermore, menus of this sort do not readily support procedural selection processes, particularly where subsequent choices are context sensitive. The term xe2x80x9ccontext sensitivexe2x80x9d as used herein in connection with a series of options presented to a user means that the options presented to the user are dependent on a previous selection of one or more other options. This concept should not be confused with simply drilling down through a series of nested layers of menus to make a single choice from one of the options presented on a given layer. To make a series of procedural selections in which successive choices are context sensitive, the user should be able to choose one option from among a plurality of options, and as a result of that selection, the user should then be presented with a plurality of further options that are specific to the option selected. In some cases, the choice from the second set of options may lead to the user being provided yet a third set of options that relate only to the second choice. Currently, conventional menus cannot handle such procedural selections, since they do not have the ability to present context sensitive options that depend on previous choices, nor do they provide for reentry, i.e., they do not provide any means for a user to readily modify one of the choices in a series of linked selections.
Wizards provide an improvement over conventional menus for procedural selection of features, in that they typically are context sensitive to a user""s prior selections. However, wizards have several drawbacks, including lack of reentry to previous steps, and modally locking the interface to prevent it from displaying additional selections.
Additional problems occur when it is desirable to attach multiple features to the same object. For instance, it would be desirable to apply simultaneous and/or sequential dynamic effects to objects on web pages. These effects may then be initiated in response to a variety of events, such as the loading of a page, a specific time interval lapsing, movement of the cursor to a predefined position, and other user interactions. The combination of the effects and the events would typically require multiple context sensitive wizards, each launching a series of modal dialog boxes for a particular effect. However, it would be advantageous to have an improved user interface that can enable a user to select and change features with less difficulty than existing interfaces and without reliance on the wizard paradigm.
The present invention addresses the foregoing menu and option selection problems by providing a user interface toolbar that comprises context sensitive controls. The toolbar enables the user to make a series of selections in a procedural order that assigns properties to a component object in an application program document. The toolbar contains a plurality of selection controls, each containing a dropdown menu. Note: the toolbar controls could be of any kind: one step might simply be a checkbox or a latched button. The menu options that drop down in successive selection controls change in context based on the selected component object, the menu choices made in a previous selection control, and optionally, in consideration of user selectable compatibility settings. A user typically fills selection controls (i.e., makes control choices) from left to right or top to bottom, in a procedural fashion. But if necessary the toolbar can use the enabled/disabled state of the control to force the user to the next logical step. As the user makes selections to fill in the controls, the menus corresponding to the selection controls that are downstream (to the right of or below) the last filled selection control are updated based on the content of the previous selections. The toolbar allows a user to select and change any selection previously made, as desired, with the resultant changes affecting the selections and menus to the right of or below the changed selection control.
According to a first aspect of the invention, a method for assigning properties to a component object in an application program is provided, wherein the application program runs on a computer system having a graphical user interface, and including a display and a user interface selection device. A user of the application program positions the user interface selection device to select a component object, such as a text object or a graphic object that is to have properties assigned to it. The properties are assigned according to control values that are entered into a toolbar that comprises a plurality of selection controls, wherein each selection control has a control value and an associated dropdown menu. The toolbar preferably comprises two or three selection controls, but may comprise more selection controls. The selection controls preferably are arranged in a horizontal fashion along the toolbar, so that a user enters control value selections procedurally in a left-to-right fashion. Optionally, the controls may be arranged vertically, wherein the user enters control value selections in a top-to-bottom order. Control values are entered into the selection controls by selecting a menu item from each selection control dropdown menu in a procedural fashion, starting with the first (preferably left-most or top) selection control. The menu of a given selection control depends on the value of the selection control that is to its immediate left, so that the menus are nested on a context sensitive basis. The menu items for the first selection control dropdown menu preferably depend on a context of the selected component object. The menu items for the second selection control dropdown menu are context sensitive to the control value selected from the first selection control dropdown menu, in light of the context of the selected component object. Likewise, in the event a third selection control is used, the menu items for the third selection control dropdown menu are context sensitive to the control value selected from the second selection control dropdown menu. Various properties are assigned to the selected component object based on the control values entered in the selection controls.
Another aspect of the present invention is the toolbar""s ability to support re-entrant selection of control values, wherein changes to a previously selected control value cause the control values in downstream selection controls (to the right or below) to be cleared. Whether a downstream control value is cleared depends on whether the previously selected and new control values share a common context. The user may selectively change a control value for any of the controls. In some instances, changes to the first selection control cause the control values in the second and third selection controls to be cleared. In other instances, changes to the second selection control value cause the control value in the third selection control to be cleared. A change to a given selection control does not cause a change to any selection control that is upstream of it (to the left of it or above it). When a selection control is changed, the menu in the selection control to the immediate right of or below the changed control is updated, as necessary, to reflect a context of the new control value.
According to another aspect of the invention, the method provides for assigning additional properties to the component object by enabling the user to enter secondary control values in the selection controls. This procedure begins by enabling the user to select a secondary control value for the first selection control. The dropdown menu for the first selection control preferably contains indicia indicating that a previous menu item has already been assigned to the component object. Upon selection of the secondary control value (i.e., the selection of any menu item that is different from the existing selection), the second and third (if applicable) selection controls are cleared, and the user proceeds to enter secondary selections into these selection controls in a fashion similar to that described above for procedurally entering control values.
According to yet another aspect of the invention, the toolbar is designed to prompt the user to procedurally enter information. For instance, the toolbar preferably is disabled if no component object is selected, or if the selected component object cannot have properties assigned to it. Once a proper component object is selected, the toolbar is preferably displayed in an active mode, wherein the first selection control contains a prompt requesting a user to select a menu item from its dropdown menu if the selected component object has yet to have any properties assigned to it. Similarly, once a first selection control value is entered, the second selection control contains a prompt requesting the user to select a menu item from the second selection control dropdown menu. Similar prompting is preferably added to the third selection control, once a value has been selected for the second selection control. Selection of a component object with previously-assigned properties will cause the toolbar to display selection control values corresponding to the properties assigned to that object, the values of which may be edited in a similar fashion to that describe above.
The toolbar preferably includes additional controls, including a button for clearing the control values for the current component object. Clicking on a clear button causes the control values in each of the selections to be cleared, and if the component object has had properties assigned to it based on these control values, the assigned properties are also cleared from the component object. The toolbar also preferably includes a xe2x80x9chighlight selected component objectxe2x80x9d toggle button that toggles a visual highlighting of the selected component object and/or a visual highlighting of all component objects in a document that have been assigned properties. When the component object is selected, the properties assigned to the object are displayed if the user positions a cursor over it with the user interface input device. The toolbar optionally includes a tip box associated with each of its controls, whereby the tip box in visually displayed when the cursor is positioned over the control, to indicate to the user the purpose of the control.
In a preferred embodiment, the invention is implemented in an application program suitable for designing web page documents that include component objects having dynamic hypertext markup language (DHTML) effects assigned to them. Coming soon will be a new technology (probably to be accepted as an internet standard) called xe2x80x9cBehaviorsxe2x80x9d or DHTML+TIME. For all intents and purposes it is the same as DHTML today except instead of using a scripting language it is all tag based. For example, a graphic component object may be assigned a dynamical HTML effect so that it xe2x80x9cflies inxe2x80x9d from a predetermined direction when the document is loaded for display on a user""s browser. The first selection control menu contains a list of events that may be selected to trigger a dynamic HTML effect. The second selection control menu contains a list of dynamic effects that can be selectively applied to the component object, while the third selection control menu contains a list of settings that are applicable to the selected dynamic effect, as appropriate. Preferably, all of the event, effect, and settings menus take into consideration compatibility settings related to the browsers with which the display page (and its dynamic HTML effects) are compatible. The toolbar and method allow a user to assign multiple dynamic HTML effects to the same component object.